import { request } from 'umi';
import { message, notification } from 'antd';
import { download } from '@/utils/util';
const postApiList = [
  '/sys/sysUser/updatePwd', // 修改密码
  '/sys/menu/getMenuPermissionList', // 获取菜单
  '/sys/menu/insertMenu', // 菜单新增
  '/sys/menu/updateMenu', // 菜单编辑
  '/sys/menu/delMenu', // 菜单删除
  '/sys/role/selectListPage', // 获取角色列表
  '/sys/role/insert', // 新增角色
  '/sys/role/delRoleById', // 删除角色
  '/sys/role/selectById', // 查看角色
  '/sys/role/updateById', // 编辑角色
  '/sys/role/updateStateById', // 冻结角色
  '/sys/role/getMenuPermissionList', // 角色管理的菜单列表
  '/sys/role/getMenuPermissionListByRoleId', // 获取角色已配置的菜单
  '/sys/role/updateRolePermission', // 配置角色的菜单权限
  '/common/getDictItemListByDictCode', // 数据字典
  '/sys/sysUser/selectSysUserList', // 获取用户列表
  '/sys/sysUser/selectSysUserById', // 查看用户详情
  '/sys/sysUser/insertSysUser', // 新增用户
  '/sys/sysUser/updateSysUser', // 编辑用户
  '/sys/sysUser/delSysUser', // 删除用户
  '/sys/sysUser/resetPassword', // 用户重置密码
  '/sys/sysUser/disableUser', // 启用或禁用用户
  '/sys/sysUser/selectOrgListPage', // 获取用户下的组织列表
  '/sys/sysUser/selectRoleListPage', // 获取用户下的角色列表
  '/emergencyplan/getYalx', //获取预案类型
  '/emergencyplan/getEp', //预案查询
  '/emergencyplan/addEp', //预案新增
  '/emergencyplan/delEp', //预案删除
  '/emergencyplan/showEp', //预案查看
  '/emergencyplan/modEp', //预案编辑
  '/common/getCurrentUser', //获取个人信息
  '/emergency/getEUP', //获取应急支撑人员列表
  '/emergency/addEUP', //新增应急支撑人员列表
  '/emergency/showEUP', //详情
  '/emergency/modEUP', //修改
  '/emergency/delEUP', //删除
  '/emergencyBudget/getEB', //预算
  '/emergencyBudget/addEB', //预算新增
  '/emergencyBudget/modEB', //预算编辑
  '/emergencyBudget/delEB', //预算删除
  '/emergencyBudget/showEB', //预算详情
  '/workbench/getMsgList', //通知列表
  '/workbench/getMsgById', //通知详情
  '/common/getJwt', // 获取jwt
  '/emergencydrillrecord/getYllx', //获取演练类型
  '/emergencydrillrecord/addEdr', //新增演练
  '/emergencydrillrecord/getEdr', //获取演练列表
  '/emergencydrillrecord/delEdr', //删除演练
  '/emergencydrillrecord/modEdr', // 编辑演练
  '/emergencydrillrecord/showEdr', // 演练详情
  '/common/getEmergencyToolsList', // 获取工具列表
  //告警
  '/alarm/selectAlarmById', //查询
  '/alarm/updateAlarmStateById', //关闭时返回的数据
];
const orgAPIList = [
  '/sys/org/selectOrgListPage', // 获取组织列表
  '/sys/org/insert', // 新增组织
  '/sys/org/updateById', // 编辑组织
  '/sys/org/selectOrgById', // 查看组织
  '/sys/org/delById', // 删除组织
  '/sys/org/selectAlarmPersonList', //获取组织负责人列表
];
const PREFIX = '/jiaotong';
const API = {};
postApiList.forEach((item) => {
  // 使用正则取到接口路径的最后一个子串，比如: getPublicKey
  const apiName = /[^/]+$/.exec(item)[0];
  if (apiName) {
    API[apiName] = (data) => {
      return request(item, {
        method: 'post',
        data,
      });
    };
  }
});
orgAPIList.forEach((item) => {
  // 使用正则取到接口路径的最后一个子串，比如: getPublicKey
  const apiName = /[^/]+$/.exec(item)[0];
  if (apiName) {
    API['org_' + apiName] = (data) => {
      return request(item, {
        method: 'post',
        data,
      });
    };
  }
});

API.login_process = (params) => {
  return request('/login_process', {
    params,
    method: 'get',
    skipErrorHandler: true,
  });
};
API.login_processOther = (params) => {
  return request('/login_process' + params, {
    method: 'get',
    skipErrorHandler: true,
  });
};
API.forwardLogin = (params) => {
  return request(
    '/docking/forwardLogin', //登录
    { method: 'get', params },
  );
};
API.logout = (params) => {
  return request('/logout', {
    method: 'post',
    params,
    skipErrorHandler: true,
  });
};

API.redirect = (params) => {
  return request('/common/redirect', {
    method: 'get',
    params,
    skipErrorHandler: true,
  }).then((res) => {
    localStorage.clear();
    location.href = res;
  });
};
API.switch = (params) => {
  return request('/security/switch', {
    method: 'get',
    params,
  });
};
API.downloadFn = (url = '/emergencyplan/download', data) => {
  return request(url, {
    headers: {
      jwt: localStorage.getItem('jwt'),
    },
    method: 'post',
    data,
    responseType: 'blob',
    skipErrorHandler: true,
  })
    .then((res) => {
      if (res) {
        const fileUrl = window.URL.createObjectURL(res);
        download(data.originalFileName, fileUrl);
        window.URL.revokeObjectURL(fileUrl);
      }
      return true;
    })
    .catch((error) => {
      return false;
    });
};
export const getImg = PREFIX + '/validCode/getImg';
export default API;
